package cc.ucanuup.common.support.easyui;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;

import cc.ucanuup.common.support.easyui.inter.EasyuiQuery;

/**
 * 文件名： com.bozhon.service.base.support.EasyUiSpUtil.java
 * 作者：   WenBin
 * 日期：   2017年11月10日
 * 功能说明：
 * =========================================================
 * 修改记录：
 * 修改作者    日期      修改内容
 * =========================================================
 *  Copyright (c) 2010-2011 .All rights reserved.
 */
public class EasyuiUtil {

	public static Sort getJpaSort(EasyuiQuery search){
		String[] sorts = search.getSortArr();
		String[] oders = search.getOrders();
		List<Order> orders = new ArrayList<Order>();
		Sort sort = null;
		if (sorts != null && sorts.length > 0) {
			Order od = null;
			for (int i = 0; i < sorts.length; i++) {
				if ("asc".equals(oders[i])) {
					od = new Order(Direction.ASC, sorts[i]);
				} else {
					od = new Order(Direction.DESC, sorts[i]);
				}
				orders.add(od);
			}
			sort = new Sort(orders);
		}
		return sort;
	}

	public static Map<String,Object> castQueryParam(EasyuiQuery obj) throws Exception{
		Map<String,Object> params = new HashMap<String,Object>();
		Field[] fs = obj.getClass().getDeclaredFields();
		for(Field f : fs){
			f.setAccessible(true);
			String name = f.getName();
			params.put(name, f.get(obj));
		}
		return params ;
	}
}
